// 设置窗口相关的图标.
package main

import (
	"fmt"
	app "gitee.com/go_888/xcgui/xcgui/app"
	common "gitee.com/go_888/xcgui/xcgui/common"
	imagex "gitee.com/go_888/xcgui/xcgui/imagex"
	wapi "gitee.com/go_888/xcgui/xcgui/wapi"
	window "gitee.com/go_888/xcgui/xcgui/window"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

func main() {
	// 1.初始化UI库
	a := app.X创建(true)
	a.X启用DPI(true)
	a.X启用自动DPI(true)

	// 设置程序默认窗口图标, 所有未设置图标的窗口, 都将使用此默认图标
	a.X设置窗口图标(imagex.X创建并按文件("SetWindowIcon\\icon1.ico").X句柄)

	// 2.创建窗口
	w := window.X创建窗口(0, 0, 430, 300, "xcgui window", 0, xcc.X窗口样式_默认样式)

	// 单独设置指定窗口图标
	w.X设置图标(imagex.X创建并按文件("SetWindowIcon\\icon2.ico").X句柄)

	// 加载图标
	hIcon1 := wapi.X加载图像W(0, common.X文本到uintptr("SetWindowIcon\\icon1.ico"), wapi.IMAGE_ICON, 0, 0, wapi.LR_LOADFROMFILE|wapi.LR_DEFAULTSIZE|wapi.LR_SHARED)
	hIcon2 := wapi.X加载图像W(0, common.X文本到uintptr("SetWindowIcon\\icon2.ico"), wapi.IMAGE_ICON, 0, 0, wapi.LR_LOADFROMFILE|wapi.LR_DEFAULTSIZE|wapi.LR_SHARED)
	fmt.Println(hIcon1, hIcon2)

	// 通过动态设置可以给不同窗口设置不同图标
	hWnd := w.X取HWND句柄()
	// 设置大图标 (任务栏图标), 这个一般不设置, 因为编译的程序有图标的话就是那个
	wapi.X发送窗口消息(hWnd, uint32(xcc.WM_SETICON), xcc.ICON_BIG, hIcon1)

	// 设置小图标 (任务栏预览左上角图标), 这个需要注意, 不设置的话, 就是没有
	wapi.X发送窗口消息(hWnd, uint32(xcc.WM_SETICON), xcc.ICON_SMALL, hIcon2)

	w.X显示(true)
	a.X运行()
	a.X退出()
}
